<template>
    <div class="count">
        <h2>当前求和为:{{ sum }}----放大10倍{{ bigSum }}</h2>
        <h2>我在{{ school }}这上面学习vue,地点在{{ address }}---{{ changeAddress }}</h2>
        <select v-model.number="n">
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
        </select>
        <button @click="add">加</button>
        <button @click="minus">减</button>
    </div>
</template>

<script lang="ts" setup name="Count">
    import {ref} from 'vue'
    // 引入useCountStore
    import { useCountStore } from '../store/count.ts'
    // 使用pinia里面的storeToRefs 作用于 解构数据并变成响应式
    // storeToRefs只会关注于ref里面的数据不会关注里面的其他东西
    import { storeToRefs } from 'pinia'
    // 使用useCountStore,得到一个专门保存count相关的store
    const countStore = useCountStore()
    // 解构countStore里面的东西
    const {sum,school,address,changeAddress,bigSum} = storeToRefs(countStore)

    // 数据
    // let sum = ref(1)// 当前求和
    let n = ref(1)// 用户选择的数字
    // 方法
    let add = ()=>{
        // 第一种修改方式
        // countStore.sum += n.value

        // 第二种修改方式 如果同时需要多个数据修改的话使用$patch来修改
        // countStore.$patch({
        //     sum:888,
        //     school:'电脑上',
        //     address:'虚拟世界'
        // })

        // 第三种修改方式
        countStore.increment(3)
    }
    let minus = ()=>{
        countStore.sum -= n.value
    }
</script>

<style scoped>
    .count{
        background-color: skyblue;
        padding:10px;
        border-radius: 10px;
        box-shadow: 0 0 10px;
    }
    select,button{
        margin:0 5px;
        height:25px;
    }
</style>